package uiMain;

import gestorbienraizok.usuarios.Persona;
import java.util.Scanner;
import static uiMain.bienRaizOk.*;

public class OpcionLogin extends OpcionDeMenu {

    private String nombreParaMostrar = " Iniciar sesión";

    @Override
    public void ejecutar() {

        System.out.print("Ingrese su número de cédula: ");
        entrada = new Scanner(System.in);
        long cedula = entrada.nextLong();
        System.out.print("Ingrese su contraseña: ");
        entrada.nextLine();
        String contrasenha = entrada.nextLine();

        for (int i = 0; i < listaDePersonas.size(); i++) {
            Persona estaPersona = listaDePersonas.get(i);
            if (cedula == estaPersona.getCedula()) {
                if (estaPersona.getContrasenha().equals(contrasenha)) {
                    usuarioActual = estaPersona;
                    System.out.println("Bienvenido " + estaPersona.getNombre() + ", usted es un " + estaPersona.tipoDePersona() + "\n");
                    do {
                        estaPersona.getMenuDeConsola().mostrarMenu();
                        System.out.print("\nSeleccione la opción deseada: ");
                        entrada = new Scanner(System.in);
                        byte numeroDeOpciones = estaPersona.getMenuDeConsola().getNumeroDeOpciones();
                        byte seleccion = entrada.nextByte();
                        while (seleccion < 1 || seleccion > numeroDeOpciones) {
                            System.out.print("Seleccione una opción válida (1-" + numeroDeOpciones + "): ");
                            seleccion = entrada.nextByte();
                        }
                        estaPersona.getMenuDeConsola().listaOpciones.get(seleccion - 1).ejecutar();
                    } while (usuarioActual != null);
                    return;
                } else {
                    break;
                }
            }
        }
        System.out.println("El nombre de usuario y contraseña que ingresó no coinciden.\n");
    }

    @Override
    public String toString() {
        return nombreParaMostrar;
    }
    
    @Override
    public String toStringParaMostrarElNivel() {
        return nombreParaMostrar.trim().concat("...................................................................").substring(0,67) + "Todos";
    }
}
